
package org.xteam.sled.ast;

public class DefaultSledVisitor implements ISledVisitor {

	public void visitSledFile(SledFile aSledFile) {
			for (Spec e : aSledFile.getSpecs()) {
				e.visit(this);
			}
	}
	
	public void visitFieldsSpec(FieldsSpec aFieldsSpec) {
			aFieldsSpec.getName().visit(this);
			aFieldsSpec.getSize().visit(this);
			for (FieldSpec e : aFieldsSpec.getFields()) {
				e.visit(this);
			}
	}
	
	public void visitFieldSpec(FieldSpec aFieldSpec) {
			aFieldSpec.getName().visit(this);
			aFieldSpec.getLow().visit(this);
			aFieldSpec.getHigh().visit(this);
	}
	
	public void visitFieldInfoSpec(FieldInfoSpec aFieldInfoSpec) {
			for (FieldInfo e : aFieldInfoSpec.getInfos()) {
				e.visit(this);
			}
	}
	
	public void visitFieldInfo(FieldInfo aFieldInfo) {
			for (Ident e : aFieldInfo.getIdents()) {
				e.visit(this);
			}
			for (FieldInfoItem e : aFieldInfo.getItems()) {
				e.visit(this);
			}
	}
	
	public void visitCheckedItem(CheckedItem aCheckedItem) {
	}
	
	public void visitUncheckedItem(UncheckedItem aUncheckedItem) {
	}
	
	public void visitGuaranteedItem(GuaranteedItem aGuaranteedItem) {
	}
	
	public void visitSparseItem(SparseItem aSparseItem) {
			for (NameBinding e : aSparseItem.getBindings()) {
				e.visit(this);
			}
	}
	
	public void visitNameBinding(NameBinding aNameBinding) {
			aNameBinding.getName().visit(this);
			aNameBinding.getValue().visit(this);
	}
	
	public void visitNamesItem(NamesItem aNamesItem) {
			for (FieldName e : aNamesItem.getNames()) {
				e.visit(this);
			}
	}
	
	public void visitFieldName(FieldName aFieldName) {
	}
	
	public void visitRelocatableSpec(RelocatableSpec aRelocatableSpec) {
			for (Ident e : aRelocatableSpec.getVars()) {
				e.visit(this);
			}
	}
	
	public void visitBitSpec(BitSpec aBitSpec) {
			aBitSpec.getZeroInt().visit(this);
			aBitSpec.getValue().visit(this);
	}
	
	public void visitPatternsSpec(PatternsSpec aPatternsSpec) {
			for (PatternBinding e : aPatternsSpec.getBindings()) {
				e.visit(this);
			}
	}
	
	public void visitSimplePatternBinding(SimplePatternBinding aSimplePatternBinding) {
			aSimplePatternBinding.getName().visit(this);
			aSimplePatternBinding.getPattern().visit(this);
	}
	
	public void visitAnyPatternBinding(AnyPatternBinding aAnyPatternBinding) {
			aAnyPatternBinding.getName().visit(this);
			for (Ident e : aAnyPatternBinding.getNames()) {
				e.visit(this);
			}
			aAnyPatternBinding.getPattern().visit(this);
	}
	
	public void visitListPatternBinding(ListPatternBinding aListPatternBinding) {
			for (Ident e : aListPatternBinding.getNames()) {
				e.visit(this);
			}
			aListPatternBinding.getPattern().visit(this);
	}
	
	public void visitOrPattern(OrPattern aOrPattern) {
	}
	
	public void visitSequentPattern(SequentPattern aSequentPattern) {
	}
	
	public void visitLabelPattern(LabelPattern aLabelPattern) {
			aLabelPattern.getIdent().visit(this);
			aLabelPattern.getExpr().visit(this);
	}
	
	public void visitAndPattern(AndPattern aAndPattern) {
	}
	
	public void visitPrefixPattern(PrefixPattern aPrefixPattern) {
			aPrefixPattern.getExpr().visit(this);
	}
	
	public void visitSuffixPattern(SuffixPattern aSuffixPattern) {
			aSuffixPattern.getExpr().visit(this);
	}
	
	public void visitPatternIdent(PatternIdent aPatternIdent) {
			aPatternIdent.getIdent().visit(this);
	}
	
	public void visitRelationPattern(RelationPattern aRelationPattern) {
			aRelationPattern.getIdent().visit(this);
			aRelationPattern.getRelop().visit(this);
			aRelationPattern.getExpr().visit(this);
	}
	
	public void visitGeneratorPattern(GeneratorPattern aGeneratorPattern) {
			aGeneratorPattern.getIdent().visit(this);
			aGeneratorPattern.getRelop().visit(this);
			aGeneratorPattern.getGenerator().visit(this);
	}
	
	public void visitEqOp(EqOp aEqOp) {
	}
	
	public void visitNeOp(NeOp aNeOp) {
	}
	
	public void visitLeOp(LeOp aLeOp) {
	}
	
	public void visitGeOp(GeOp aGeOp) {
	}
	
	public void visitLtOp(LtOp aLtOp) {
	}
	
	public void visitGtOp(GtOp aGtOp) {
	}
	
	public void visitIdentOpName(IdentOpName aIdentOpName) {
	}
	
	public void visitStringOpName(StringOpName aStringOpName) {
	}
	
	public void visitRangeGenerator(RangeGenerator aRangeGenerator) {
			aRangeGenerator.getFrom().visit(this);
			aRangeGenerator.getTo().visit(this);
			aRangeGenerator.getStep().visit(this);
	}
	
	public void visitListGenerator(ListGenerator aListGenerator) {
			for (IntegerLiteral e : aListGenerator.getValues()) {
				e.visit(this);
			}
	}
	
	public void visitListPattern(ListPattern aListPattern) {
			for (Ident e : aListPattern.getNames()) {
				e.visit(this);
			}
	}
	
	public void visitEpsilonPattern(EpsilonPattern aEpsilonPattern) {
	}
	
	public void visitSomePattern(SomePattern aSomePattern) {
			aSomePattern.getIdent().visit(this);
	}
	
	public void visitCallPattern(CallPattern aCallPattern) {
			for (OpName e : aCallPattern.getOpcode()) {
				e.visit(this);
			}
			for (Expr e : aCallPattern.getArguments()) {
				e.visit(this);
			}
	}
	
	public void visitAddExpr(AddExpr aAddExpr) {
	}
	
	public void visitSubExpr(SubExpr aSubExpr) {
	}
	
	public void visitMulExpr(MulExpr aMulExpr) {
	}
	
	public void visitDivExpr(DivExpr aDivExpr) {
	}
	
	public void visitMinusExpr(MinusExpr aMinusExpr) {
			aMinusExpr.getExpr().visit(this);
	}
	
	public void visitExtendExpr(ExtendExpr aExtendExpr) {
			aExtendExpr.getExpr().visit(this);
	}
	
	public void visitIdentExpr(IdentExpr aIdentExpr) {
	}
	
	public void visitBitRange(BitRange aBitRange) {
			aBitRange.getIdent().visit(this);
			aBitRange.getLow().visit(this);
			aBitRange.getHigh().visit(this);
	}
	
	public void visitIntegerExpr(IntegerExpr aIntegerExpr) {
	}
	
	public void visitStringExpr(StringExpr aStringExpr) {
	}
	
	public void visitConstructorsSpec(ConstructorsSpec aConstructorsSpec) {
			for (Constructor e : aConstructorsSpec.getConstructors()) {
				e.visit(this);
			}
	}
	
	public void visitConstructor(Constructor aConstructor) {
			for (OpName e : aConstructor.getOpnames()) {
				e.visit(this);
			}
			for (Operand e : aConstructor.getOperands()) {
				e.visit(this);
			}
			aConstructor.getType().visit(this);
			for (Branch e : aConstructor.getBranches()) {
				e.visit(this);
			}
	}
	
	public void visitIdentOperand(IdentOperand aIdentOperand) {
			aIdentOperand.getIdent().visit(this);
			aIdentOperand.getExtend().visit(this);
	}
	
	public void visitExtend(Extend aExtend) {
	}
	
	public void visitNoiseOperand(NoiseOperand aNoiseOperand) {
	}
	
	public void visitBranch(Branch aBranch) {
			for (Equation e : aBranch.getEquations()) {
				e.visit(this);
			}
			aBranch.getPattern().visit(this);
	}
	
	public void visitEquation(Equation aEquation) {
			aEquation.getLeft().visit(this);
			aEquation.getRelop().visit(this);
			aEquation.getRight().visit(this);
	}
	
	public void visitPlaceholderSpec(PlaceholderSpec aPlaceholderSpec) {
			aPlaceholderSpec.getIdent().visit(this);
			aPlaceholderSpec.getPattern().visit(this);
	}
	
	public void visitIdent(Ident aIdent) {
	}
	
	public void visitIntegerLiteral(IntegerLiteral aIntegerLiteral) {
	}
	
	public void visitStringLiteral(StringLiteral aStringLiteral) {
	}
	
}
